This invention relates in general to power consumption in digital processing systems and more specifically to power savings in server farms.
It is desirable to minimize power consumption in electronic devices such as digital processing systems. Reducing power consumption not only reduces the cost of operation but can have other benefits such as preserving or extending the operating lifetime of electronic devices. One particular type of system that can benefit from power savings includes large collections of similar devices such as server “farms.” Server farms can include tens, hundreds, thousands or more separate computer systems, or servers. The servers are usually interconnected by a common network and are provided with centralized control or management. Server farms are often used in large enterprise processing applications to act as database front-ends, web page servers, application service providers, etc.
Although large numbers of servers are often necessary to handle the demands of enterprise applications, operating so many servers has drawbacks. Power consumption can be costly and the increased heat in roomfuls of servers can cause electronic and mechanical components to degrade more quickly and thus fail sooner. Other effects of can include structural fatigue from vibration, lower levels of operating voltage or “brownout” conditions if the power supply is not sufficient; increased requirements for power infrastructure, cooling and maintenance, etc.
In order to reduce the above drawbacks some power-saving approaches have been adopted. For example, microprocessor vendors have made great in power management technologies for central processing units (CPUs). Attempts at server load distribution or balancing have included looking at the effects of temporal locality as well as performing strategic server shutdown. In many environments, where network-based server load balancers are typically employed, there is an inherent knowledge of load distribution in the server farm. The CPU can tell when it has had no load for a while, and can place itself in a low power state.
Typically, a load balancing scheme is designed to maintain “connection efficiency” of a server farm. That is, it is desirable to respond to a server request as quickly as possible. This reduces, for example, the amount of time a user might have to wait before a web page can is fully displayed on the user's computer screen. Load-balancing schemes for assignment of a next request to a server in a server farm can include “round robin,” “weighted round robin,” “least connections” and “content specific” based decisions. These approaches have drawbacks. For example, in a strict round robin approach many, or all, servers will get a request for processing at regular intervals even when the overall load on the server farm is very light.